#!/bin/bash

# Docker镜像源修复脚本 - Linux/macOS版本

echo "🔧 Docker镜像源问题修复工具"
echo ""

# 检查当前Docker配置
echo "📋 当前Docker信息："
docker version --format "Docker版本: {{.Client.Version}}"
echo ""

echo "🌐 可用的镜像加速器："
echo "1. 阿里云：https://docker.mirrors.ustc.edu.cn"
echo "2. 中科大：https://docker.mirrors.ustc.edu.cn" 
echo "3. 网易：https://hub-mirror.c.163.com"
echo "4. 腾讯云：https://mirror.ccs.tencentyun.com"
echo "5. Docker官方（直连）：https://registry-1.docker.io"
echo ""

echo "💡 解决方案："
echo "1. 临时使用官方镜像源构建"
echo "2. 配置新的镜像加速器"
echo "3. 使用代理构建"
echo ""

read -p "请选择解决方案 (1/2/3): " choice

case $choice in
    1)
        echo "🚀 使用官方镜像源构建..."
        echo "正在构建，这可能需要较长时间..."
        
        # 临时禁用镜像加速器
        export DOCKER_BUILDKIT=0
        
        if docker-compose -f docker-compose.prod.yml build --no-cache --pull; then
            echo "✅ 构建成功！"
        else
            echo "❌ 构建失败，请尝试其他方案"
        fi
        ;;
        
    2)
        echo "🔧 配置镜像加速器..."
        echo "请编辑 Docker 配置文件："
        echo ""
        
        if [[ "$OSTYPE" == "linux-gnu"* ]]; then
            echo "Linux 系统配置："
            echo "sudo nano /etc/docker/daemon.json"
        elif [[ "$OSTYPE" == "darwin"* ]]; then
            echo "macOS 系统配置："
            echo "通过 Docker Desktop > Settings > Docker Engine 配置"
        fi
        
        echo ""
        echo "添加以下配置："
        cat << 'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF
        echo ""
        echo "配置完成后重启Docker服务："
        if [[ "$OSTYPE" == "linux-gnu"* ]]; then
            echo "sudo systemctl restart docker"
        fi
        ;;
        
    3)
        echo "🌐 使用代理构建..."
        read -p "请输入代理地址 (格式: http://proxy:port): " proxy_url
        
        if [ ! -z "$proxy_url" ]; then
            echo "正在使用代理构建..."
            ./docker-build.sh "$proxy_url"
        else
            echo "❌ 代理地址不能为空"
        fi
        ;;
        
    *)
        echo "❌ 无效选择"
        ;;
esac

echo ""
echo "📞 如果问题仍然存在，请尝试："
echo "1. 重启 Docker 服务"
echo "2. 清理 Docker 缓存: docker system prune -a"
echo "3. 检查网络连接"
